//
//  JJBStudyMonitorSDK.h
//  JJBHourMonitorSDK
//
//  Created by JJB_iOS on 2022/7/29.
//  sdk 版本 2.0.0

#import <Foundation/Foundation.h>
#import <JJBHourMonitorSDK/JJBDynamicStartSDKModel.h>

@protocol JJBStudyMonitorSDKDelegate <NSObject>
@required

/**
 * SDK初始化成功
 */
- (void)studyMonitorSDKInitSucceed;

/**
 * 触发了校验
 * @param isCheck 是否需要校验（如果需要校验就暂停视频）
 */
- (void)studyMonitorSDKTriggerValidate:(BOOL)isCheck;

/**
 * 校验成功，如果在触发校验暂停了视频，在此可以继续播放
 */
- (void)studyMonitorSDKValidateSucceed;

/**
 * 其他平台重复学习回调
 */
- (void)studyMonitorSDKOtherPlatformStudy;

@optional

/**
 * SDK初始化失败
 * @param errCode 错误编码
 * @param errMessage 错误消息
 */
- (void)studyMonitorSDKInitFailure:(NSString *)errCode errMessage:(NSString *)errMessage;

/**
 * 校验失败
 * @param errCode 错误编码
 * @param errMessage 错误消息
 */
- (void)studyMonitorSDKValidateFailure:(NSString *)errCode errMessage:(NSString *)errMessage;

@end

@interface JJBStudyMonitorSDK : NSObject
/**
 * sdk开放的域名字段，需要接入方在初始化sdk之前传值
 */
@property (nonatomic, copy)NSString *baseurl;
/**
 * 初始化SDK
 */
+ (instancetype)shared;

/**
 *  录播/直播开始学时监管
 *  @param startModel   初始化SDK对象
 *  @param delegate     回调代理
 */
- (void)startSDKWithModel:(JJBDynamicStartSDKModel *)startModel
                 delegate:(id<JJBStudyMonitorSDKDelegate>)delegate;

/**
 * 实时更新播放时间（录播使用，直播不调用该方法）
 * @param progress 视频播放的进度（秒）
 */
- (void)updatePlayTime:(NSInteger)progress;

/**
 * 结束学时监管
 * @param progress 视频播放的进度（直播传0）
 */
- (void)endStudyMonitor:(NSInteger)progress;

@end
